/* 
 * File:   HalfHumanCreature.h
 * Author: jcrada
 *
 * Created on January 20, 2009, 11:55 PM
 */

#ifndef _HALFHUMANCREATURE_H
#define	_HALFHUMANCREATURE_H

#include "Creature.h"

namespace jcrada {

    class HalfHumanCreature : public Creature {
    public:

        enum eBody {
            B_HEAD = 0,
            B_THORAX,
            B_LUPPERARM, B_RUPPERARM,
            B_LFOREARM, B_RFOREARM,
            BODY_PARTS
        };

        enum eConstraint {
            C_NECK = 0,
            C_LSHOULDER, C_RSHOULDER,
            C_LELBOW, C_RELBOW,
            CONSTRAINTS
        };

    public:
        HalfHumanCreature( int hidden_layers = 1, int neurons_per_layer = BODY_PARTS );
        virtual ~HalfHumanCreature( );

        virtual void set( const btTransform& at = btTransform::getIdentity( ) );

    protected:
        virtual void setBodyParts( );
        virtual void setConstraints( );

    };
}

#endif	/* _HALFHUMANCREATURE_H*/

